package demo01interface;
/*
 * public interface 接口名称{
 *   JDK7：
 *       常量
 *          必须使用public static final修饰
 *       抽象方法
 *           public abstract 返回值类型 方法名();
 *   JDK8+
 *       默认方法
 *          public default 返回值类型 方法名(参){方法体}
 *          可以解决接口升级的问题（当接口中添加了新方法时）
 *          接口实现类可以对其覆盖重写、
 *          多个接口的默认方法可能重名冲突，实现类必须对其进行重写
 *       静态方法
 *          public static 返回值类型 方法名称(参){方法体}
 *          接口名称.静态方法名
 *          （不能使用 对象.静态方法名）因为，类可以实现多个接口，静态方法可能重名
 *   JDK9+
 *       私有方法
 * }
 * 接口中的抽象方法修饰符：必须是public abstract，但是可以选择性的省略
 * 接口不能直接使用，必须使用一个实现类来实现接口
 * 格式： public class 实现类 implements 接口{}
 * 接口实现类，必须覆盖重写接口的全部方法,否则，该类必须是抽象类\
 *
 * 接口中不能有静态代码块
 * */
public interface MyInterfaceAbstract {
    //常量
    public static final int NUM_MY_CLASS=10;


    //抽象方法
    public abstract void methodAbs1();
    //abstract void methodAbs2();  //这些都对
    //public void methodAbs3();
    //void methodAbs4();

    //默认方法
    public default void AddMethod(){
        System.out.println("接口新添加的方法");
    }

    //静态方法
    public static void StaticMethod(){
        System.out.println("接口中的静态方法");
    }

    //不能有静态代码块
    /*
        static{
        }
    */


}
